home *** CD-ROM | disk | FTP | other *** search
- TITLE Convert Hex to ASCII, BCD and EBCDIC (EX511.ASM)
- PAGE ,132
- DATA SEGMENT PARA 'DATA'
- ASCII DB '0123456789ABCDEF'
- BCD DB 0,1,2,3,4,5,6,7,8,9,10H,11H,12H,13H,14H,15H
- EBCDIC DB 0F0H,0F1H,0F2H,0F3H,0F4H,0F5H,0F6H,0F7H
- DB 0F8H,0F9H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H
- DATA ENDS
- OUR_CODE SEGMENT PARA 'CODE'
- PUBLIC CONV_HEX
- CONV_HEX PROC FAR
- ASSUME CS:OUR_CODE,DS:DATA
- PUSH DS ;Save the caller's registers
- PUSH BX
- PUSH DX
- ;
- ; Initialize the data segment address.
- ;
- MOV BX,DATA
- MOV DS,BX
- ;
- ; This is the look-up procedure.
- ;
- MOV DL,AL ;Save the input value in DL
- LEA BX,ASCII ;Look up the ASCII value
- XLAT ASCII
- MOV CH,AL ; and load it into CH
- MOV AL,DL
- LEA BX,BCD ;Look up the BCD value
- XLAT BCD
- MOV CL,AL ; and load it into CL
- MOV AL,DL
- LEA BX,EBCDIC ;Look up the EBCDIC value
- XLAT EBCDIC
- MOV AH,AL ; and load it into AH
- MOV AL,DL ;Restore registers
- POP DX
- POP BX
- POP DS
- RET ; and exit
- CONV_HEX ENDP
- OUR_CODE ENDS
- END CONV_HEX
-